Re: [OE-core] [PATCH v2] blacklist.bbclass: Avoid blacklist specific handle in base.bbclass
On Saturday 03 August 2013 19:58:37 Otavio Salvador wrote: 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. Signed-off-by: Otavio Salvador ota...@ossystems.com.br --- Changes in v2: - Drop redundant 'or ' code. Thanks to Mario for the hint. meta/classes/base.bbclass | 10 -- meta/classes/blacklist.bbclass | 25 + 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index e2c9a7d..bc2b4f6 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -141,7 +141,6 @@ def pkgarch_mapping(d): def preferred_ml_updates(d): # If any PREFERRED_PROVIDER or PREFERRED_VERSION are set, # we need to mirror these variables in the multilib case; -# likewise the PNBLACKLIST flags. multilibs = d.getVar('MULTILIBS', True) or if not multilibs: return @@ -154,21 +153,12 @@ 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(): -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 d.getVarFlag('PNBLACKLIST', newpkg, True): -d.setVarFlag('PNBLACKLIST', newpkg, reason) - for v in versions: val = d.getVar(v, False) pkg = v.replace(PREFERRED_VERSION_, ) diff --git a/meta/classes/blacklist.bbclass b/meta/classes/blacklist.bbclass index 75abd99..147e988 100644 --- a/meta/classes/blacklist.bbclass +++ b/meta/classes/blacklist.bbclass @@ -12,6 +12,31 @@ # 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('MULTILIBSA', True) Typo - this should be MULTILIBS. Did you test this patch in a multilib configuration? Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v2] blacklist.bbclass: Avoid blacklist specific handle in base.bbclass
On Fri, Aug 9, 2013 at 12:47 PM, Paul Eggleton paul.eggle...@linux.intel.com wrote: On Saturday 03 August 2013 19:58:37 Otavio Salvador wrote: +# 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('MULTILIBSA', True) Typo - this should be MULTILIBS. Did you test this patch in a multilib configuration? I changed it to test and ended commiting it. Sorry. I can send a v2 of it. -- Otavio Salvador O.S. Systems http://www.ossystems.com.brhttp://projetos.ossystems.com.br Mobile: +55 (53) 9981-7854Mobile: +1 (347) 903-9750 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2] 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. Signed-off-by: Otavio Salvador ota...@ossystems.com.br --- Changes in v2: - Drop redundant 'or ' code. Thanks to Mario for the hint. meta/classes/base.bbclass | 10 -- meta/classes/blacklist.bbclass | 25 + 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index e2c9a7d..bc2b4f6 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -141,7 +141,6 @@ def pkgarch_mapping(d): def preferred_ml_updates(d): # If any PREFERRED_PROVIDER or PREFERRED_VERSION are set, # we need to mirror these variables in the multilib case; -# likewise the PNBLACKLIST flags. multilibs = d.getVar('MULTILIBS', True) or if not multilibs: return @@ -154,21 +153,12 @@ 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(): -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 d.getVarFlag('PNBLACKLIST', newpkg, True): -d.setVarFlag('PNBLACKLIST', newpkg, reason) - for v in versions: val = d.getVar(v, False) pkg = v.replace(PREFERRED_VERSION_, ) diff --git a/meta/classes/blacklist.bbclass b/meta/classes/blacklist.bbclass index 75abd99..147e988 100644 --- a/meta/classes/blacklist.bbclass +++ b/meta/classes/blacklist.bbclass @@ -12,6 +12,31 @@ # 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('MULTILIBSA', 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) -- 1.8.3.2 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core