Re: [OE-core] [PATCH v2] blacklist.bbclass: Avoid blacklist specific handle in base.bbclass

2013-08-09 Thread Paul Eggleton
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

2013-08-09 Thread Otavio Salvador
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

2013-08-03 Thread Otavio Salvador
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