Patchwork [4/4] icecc: use exact match in blacklists, re-start with empty system_package_blacklist

login
register
mail settings
Submitter Martin Jansa
Date Jan. 18, 2014, 2:01 p.m.
Message ID <7fa3e8f8d7f3222794eed5b883c3b1ad92974609.1390052402.git.Martin.Jansa@gmail.com>
Download mbox | patch
Permalink /patch/65173/
State New
Headers show

Comments

Martin Jansa - Jan. 18, 2014, 2:01 p.m.
* unify debug messages a bit
* old implementation allowed partial match in blacklist, it's safer
  to explicitly list exact matches
* I was able to build all entries from system_package_blacklist with
  icecc enabled, lets assume that they were already resolved by newer
  versions (we've fixed a lot of parallel issues in recipes which were
  detected even without icecc and this list is very old).

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/icecc.bbclass | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

Patch

diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass
index 549bd69..5c9e66c 100644
--- a/meta/classes/icecc.bbclass
+++ b/meta/classes/icecc.bbclass
@@ -95,36 +95,39 @@  def use_icc(bb,d):
     if icc_is_allarch(bb, d):
         return "no"
 
-    package_tmp = d.expand('${PN}')
+    pn = d.getVar('PN', True)
 
-    system_class_blacklist = [ "none" ]
+    system_class_blacklist = []
     user_class_blacklist = (d.getVar('ICECC_USER_CLASS_BL') or "none").split()
     package_class_blacklist = system_class_blacklist + user_class_blacklist
 
     for black in package_class_blacklist:
         if bb.data.inherits_class(black, d):
-            #bb.note(package_tmp, ' class ', black, ' found in blacklist, disable icecc')
+            bb.debug(1, "%s: class %s found in blacklist, disable icecc" % (pn, black))
             return "no"
 
-    #"system" package blacklist contains a list of packages that can not distribute compile tasks
-    #for one reason or the other
-    system_package_blacklist = [ "uclibc", "glibc", "gcc", "bind", "u-boot", "dhcp-forwarder", "enchant", "connman", "orbit2" ]
+    # "system" recipe blacklist contains a list of packages that can not distribute compile tasks
+    # for one reason or the other
+    # this is the old list (which doesn't seem to be valid anymore, because I was able to build
+    # all these with icecc enabled)
+    # system_package_blacklist = [ "uclibc", "glibc", "gcc", "bind", "u-boot", "dhcp-forwarder", "enchant", "connman", "orbit2" ]
+    # when adding new entry, please document why (how it failed) so that we can re-evaluate it later
+    # e.g. when there is new version
+    system_package_blacklist = []
     user_package_blacklist = (d.getVar('ICECC_USER_PACKAGE_BL') or "").split()
     user_package_whitelist = (d.getVar('ICECC_USER_PACKAGE_WL') or "").split()
     package_blacklist = system_package_blacklist + user_package_blacklist
 
-    for black in package_blacklist:
-        if black in package_tmp:
-            #bb.note(package_tmp, ' found in blacklist, disable icecc')
-            return "no"
+    if pn in package_blacklist:
+        bb.debug(1, "%s: found in blacklist, disable icecc" % pn)
+        return "no"
 
-    for white in user_package_whitelist:
-        if white in package_tmp:
-            bb.debug(1, package_tmp, " ", d.expand('${PV})'), " found in whitelist, enable icecc")
-            return "yes"
+    if pn in user_package_whitelist:
+        bb.debug(1, "%s: found in whitelist, enable icecc" % pn)
+        return "yes"
 
     if d.getVar('PARALLEL_MAKE') == "":
-        bb.debug(1, package_tmp, " ", d.expand('${PV}'), " has empty PARALLEL_MAKE, disable icecc")
+        bb.debug(1, "%s: has empty PARALLEL_MAKE, disable icecc" % pn)
         return "no"
 
     return "yes"