| Submitter | Peter Seebach |
|---|---|
| Date | Aug. 10, 2012, 10:57 p.m. |
| Message ID | <2b1b028b5ad68154cd4a2a2ebd7cc2ff03b50b2b.1344639098.git.peter.seebach@windriver.com> |
| Download | mbox | patch |
| Permalink | /patch/34287/ |
| State | Accepted |
| Commit | 9bc0ca9369d0daee94abf60d3d521cc734c7e8cd |
| Headers | show |
Comments
On Fri, 10 Aug 2012 17:57:59 -0500 Peter Seebach <peter.seebach@windriver.com> wrote: > The PNBLACKLIST feature does not currently work with multilibs, > because they have different ${PN}. The obvious thing to do is to > do this at the same point that we do the PREFERRED_PROVIDER > and PREFERRED_VERSION fixups. (Making the PNBLACKLIST check > do the for-each-multilib check requires it to do the multilib > list generation repeatedly.) > --- Oh, look, I forgot my Signed-off-by again. I've updated the seebs/blacklist tree on contrib with fixed commits. -s
Patch
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index e15fa26..8677a30 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -151,7 +151,8 @@ def pkgarch_mapping(d): def preferred_ml_updates(d): # If any PREFERRED_PROVIDER or PREFERRED_VERSIONS are set, - # we need to mirror these variables in the multilib case + # we need to mirror these variables in the multilib case; + # likewise the PNBLACKLIST flags. multilibs = d.getVar('MULTILIBS', True) or "" if not multilibs: return @@ -164,12 +165,19 @@ 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(): + 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_", "")
The PNBLACKLIST feature does not currently work with multilibs, because they have different ${PN}. The obvious thing to do is to do this at the same point that we do the PREFERRED_PROVIDER and PREFERRED_VERSION fixups. (Making the PNBLACKLIST check do the for-each-multilib check requires it to do the multilib list generation repeatedly.) --- meta/classes/base.bbclass | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-)